﻿namespace GdNet.Core.Domain
{
    public abstract class AbstractEntity<TId> : IEntity<TId>
    {
        protected readonly TId id;

        protected AbstractEntity()
        {
            id = default(TId);
        }

        public virtual TId Id
        {
            get { return id; }
        }

        public virtual string Signature
        {
            get { return string.Format("{0}|{1}", this.GetType().Name, this.Id); }
        }
    }
}
